package main

import "fmt"

func calc(index string, a, b int) int {
	ret := a + b
	fmt.Println(index, a, b, ret)
	return ret
}

func main() {
	a := 1
	b := 2
	defer calc("1", a, calc("10", a, b))
	a = 0
	defer calc("2", a, calc("20", a, b))
	b = 1

	// defer 时候,只会阻塞执行外层的calc函数,里面的那个是会执行的,然后直接当成一个返回结果 int整数来看
	// 10 1 2 3
	// 20 0 2 2
	// 2 0 2 2
	// 1 1 3 4
}
